home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Fritz: All Fritz
/
All Fritz.zip
/
All Fritz
/
FILES
/
PROGMISC
/
FXREF12.LZH
/
TLDR20.ZIP
/
NAMECHNG.DOC
< prev
next >
Wrap
Text File
|
1992-12-21
|
17KB
|
463 lines
N a m e C h a n g e r
Version 2.0
───────────────────────────────────────
User's Guide
┌───────┐
┌───────┐ │ (R)
──│ │ │───────────────────
│ ┌───────┐ │ Association of
ConVal Software, Inc. │ │ │─┘ Shareware
└──│ o │ Professionals
─────│ | │─────────────────────
└───┴───┘ MEMBER
N a m e C h a n g e r
Version 2.0
───────────────────────────────────────
User's Guide
┌───────┐
┌───────┐ │ (R)
──│ │ │───────────────────
│ ┌───────┐ │ Association of
ConVal Software, Inc. │ │ │─┘ Shareware
└──│ o │ Professionals
─────│ | │─────────────────────
└───┴───┘ MEMBER
Copyright 1991, 1992 ConVal Software, Inc.
All rights reserved.
This program is produced by a member of the Association of Shareware
Professionals (ASP). ASP wants to make sure that the shareware principle
works for you. If you are unable to resolve a shareware-related problem with
an ASP member by contacting the member directly, ASP may be able to help.
The ASP Ombudsman can help you resolve a dispute or problem with an ASP
member, but does not provide technical support for members' products.
Please write to the ASP Ombudsman at:
ASP Ombudsman
545 Grover Road
Muskegon, MI 49442-9427
U.S.A.
or send a CompuServe message via CompuServe MAIL to ASP Ombudsman
70007,3536.
The ombudsman may be contacted by FAX by sending to the ASP FAX number:
(616) 788-2765. In communication with the ombudsman please include a
telephone number and/or FAX if available.
TABLE OF CONTENTS
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
Features of NameChanger . . . . . . . . . . . . . . . . . . . . . . . . 7
Specifying the Files to be Examined. . . . . . . . . . . . . . . . . . . 8
Specifying the Naming Transform. . . . . . . . . . . . . . . . . . . . . 9
Getting Started. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Notes and Restrictions . . . . . . . . . . . . . . . . . . . . . . . . . 11
Page 6
Introduction
──────────────────────────────────────
ConVal Software supports software developers. It provides tools and services
to assist throughout the life cycle of a software project.
NameChanger is a tool for changing names -
■ to enable the porting of code that would not otherwise run on the
target platform (because of naming rules or collisions with existing
applications )
■ to allow easy conversion to one's current naming preference
■ to make source code naming style more compatible with Microsoft
Windows conventions
■ to make source code naming style more compatible with IBM's
OS/2 PM conventions
NameChanger changes filenames and other symbols, throughout an application -
source code and documentation files as well. It intelligently scans a
variety of languages to incorporate the renaming so you merely need to
recompile.
The following discussion demonstrates the need for much more than just a
global replacement tool to perform these tasks:
■ On one platform long file names using mixed upper and lower case may be
OK, while the target platform may require shorter, all-uppercase. Thus
filenames themselves may require renaming.
■ The filename "BONUS.COB" probably contains a COBOL subroutine named
"BONUS". Other files probably contain references to the subroutine,
for example, CALL 'BONUS' USING and also documentation about the
"BONUS" subroutine. So internal references must obviously be changed
too.
■ If the filename "ART" is to be changed to XXXART then an occurrence of
PART-TYPE in a COBOL file could become PXXXART-TYPE. This change is
definately not desired!
■ If the filename "ADDIT" is to be changed to XXXADDIT then Start Addit
in a SQL file could be missed because of the case mismatch.
■ If the lengths of the source-text and replacement-text are different,
then text could be shifted. This matters when we're already at the line
length limit or in files with a fixed format. E.G. the "free-form"
area of COBOL or FORTRAN and the sequence (or identification) area in
columns 73-80.
NameChanger meets these needs!
Page 7
You may wish to use NameChanger to allow you to change your internal naming
conventions to, say, the Hungarian notation, coined by Charles Simonyi of
Microsoft. The notation requires a lower case prefix that describes data
type, followed by a variable name whose first letter is capitalized. Some
prefix examples are:
───────────────────────────────────────────────
b - boolean (0 or 1, usually an int)
c - character
i - int
l - long
───────────────────────────────────────────────
For example: iHeapStatus is an integer variable whose name is HeapStatus.
This convention is used widely by MS-Windows and OS/2 programmers. The
NameChanger utility will enable you to readily change your naming
convention.
On mainframes where many applications share a production environment like
CICS and IMS, naming collisions must be avoided. Use NameChanger on your
product to make it conform to your potential client's needs. It could give
you a sale you'd miss otherwise!
Features of NameChanger
──────────────────────────────────────
NameChanger reads a list of text files and makes a copy of each with its
symbols altered according to a symbol rename list. This version has special
processing logic for supporting the syntax of the following file types:
Table 1: File types automatically supported
FILE
EXTENSION CATEGORY
──────────────────────────────────────
.BAS BASIC
.BAT Batch Files
.C .CPP C and
.H .HPP C++ source
.CBL .COB COBOL
.FOR FORTRAN
.ASM Macro Assembler
.MAK Make files
.SQL .INP Oracle
.PAS Pascal
.PLI PL/I
.REX REXX
.DOC .TXT Text (ASCII)
.PRG xBASE
──────────────────────────────────────
All other types are processed as if they were ASCII text files.
So NameChanger is a language and context-sensitive tool for changing naming
conventions.
Page 8
You will prepare a control file, called the file specification list,
containing a list of files to be processed. Or, you may use a utility,
CRE8FSL (see Page 9), to create a list of all files on a directory
matching one of the file types in Table 1.
You'll prepare a second control file, called the symbol rename list, with
each line containing an "old name" a "new name" and a flag to tell whether
the search for the old name is to be case sensitive.
When you invoke the NameChanger program, you will specify a directory where
the files containing the transformed symbols will be written. (Your files
will not be changed in place!)
Specifying the Files to be Examined
─────────────────────────────────────
A File Specification List (FSL) file identifies to NameChanger the files to
be read. It is a text file and may be created with any text editor. Each
line must start in column one and contain exactly three columns - Line
format, Maximum line length, and File specification. Place one or more
spaces between the three columns.
line format - F "Fixed length lines" Each line of the file is
the same length.
V "Variable length lines" The length of the lines
may be different.
Maximum line length - For fixed length lines, this is the actual
length of each input line in this file.
For variable length lines this is the maximum length
to be written for any given input line after
transforming symbols.
The maximum line length must be <= 256.
File specification - A DOS file specification.
Examples:
V 100 C:\SOURCE\MAINPGM.C
V 100 C:\SOURCE\INCLUDE\INFILE.H
V 120 D:\SAMPLES\DEMO01.TXT
F 80 C:\COBOL\TEST1.COB
F 80 C:\FORTRAN\MYPROG.FOR
By listing all files in the File Specification List you will insure that the
renaming is complete.
Page 9
To ease the effort in preparing this file, a utility called CRE8FSL is
provided for you. Given a directory, it will read all files in that
directory, writing each filename matching a file type in Table 1.
Example 1: This causes CRE8FSL to create a list of all files in
directory C:\SOURCE with file extensions in Table 1 and write
them to NAMEC.FSL.
CRE8FSL C:\SOURCE NAMEC.FSL
Example 2: This causes CRE8FSL to create a list of files on the C root
directory.
CRE8FSL C: NAMEC.FSL
Example 3: This causes CRE8FSL to create a list of all files on three
different directories (and different drives)
CRE8FSL C:\BASELINE C.LST
CRE8FSL D:\CHANGES1 D1.LST
CRE8FSL D:\CHANGES2 D2.LST
COPY C.LST+D1.LST+D2.LST NAMEC.FSL
Specifying the Naming Transform
──────────────────────────────────────
We need to define the renaming rules. This input to NameChanger is a Symbol
Rename List (SRL) file. It contains the rules to be followed in changing
"old symbols" to "new symbols".
Use a text editor to create this file. Start each entry in column one and
place exactly three columns on each line - Case code, Old symbol and New
symbol.
Case code - I when your want NameChanger to look for the Old symbol
regardless of the case of each letter. (both comparands
are raised to upper case before the comparison)
- S when you want NameChanger to have an exact match on the
Old symbol before it will replace it with New symbol.
Old symbol One to 31 characters. A valid symbol for the language being
scanned. For case code I, this may be entered without regard
to case. (It doesn't matter how you enter this.) For case
code S, enter the old symbol in upper/lower case. The
symbol will be replaced only when matched exactly.
New symbol One to 31 characters. A valid symbol for the language being
examined. The case of this entry is important, since this
will be used as-is when making replacements.
Page 10
Example: Change "CALCDIST" to "Calculate_distance" regardless of case.
(So Calcdist, CaLcDisT, and CALCDIST would all be transformed)
Change "Help_A" to "HelpEditError" but perform case-sensitive
matching. Change "RNDVAL", to "RandomNumber" performing
case-sensitive matching.
I CALCDIST Calculate_distance
S Help_A HelpEditError
S RNDVAL RandomNumber
Getting Started
──────────────────────────────────────
Prior to running NameChanger, create the list of files to be examined (see
Page 8) and the symbol rename list (see Page 9). The program requires
CONFIG.SYS to contain FILES=20, or more.
The general command line syntax for running NameChanger is:
NAMEC [?] /OUTDIR=xxx [fsl srl msg]
where
? is used to request help with using NameChanger.
xxx is a path identifying where to put the output files after
the renaming. Note: The output files from the processing
must not already exist in this directory.
fsl is a file specification for the input file containing file
specifications for each source to be processed. If omitted,
this defaults to NAMEC.FSL.
srl is a file specification for the input file containing the
symbol rename list. If omitted, this defaults to NAMEC.SRL.
msg is a file specification for the output file of run
statistics. If omitted, this defaults to NAMEC.MSG.
Example 1: Take all the defaults.
NAMEC /OUTDIR=C:\TEMP
The two control files (NAMEC.FSL and NAMEC.SRL) must be in the current
directory. This will read file specifications from NAMEC.FSL and will
get the symbol rename list from NAMEC.SRL. Messages will be output to
NAMEC.MSG. The copies of the renamed files will be generated to the
C:\TEMP directory. This directory must already exist and none of the
files to be generated must exist (as a safety precaution).
Page 11
Example 2: Override the location and naming of the control and message
files.
NAMEC /OUTDIR=D:\NEWNAMES C:\FILESPEC.LST OLDNEW.CTL
MESSAGE.LST
Here files will be written to the D: drive in the NEWNAMES directory.
Also, the standard file names and locations have been overridden.
Although the above is shown as two separate lines, you would type it
all in at the DOS prompt and press enter once.
NOTE: All parameters are positional. So, to override the last one, you must
supply the defaults for the others. That is, none may be omitted prior to
the one you wish to override.
Notes and Restrictions
──────────────────────────────────────
1. The input files must be text files with each line terminated by a line
feed alone or a carriage return and line feed.
2. COBOL, FORTRAN, and PL/I are assumed to be fixed length, 80 character
lines.
Data in columns 1-7 and 73-80 of CBL and COB, 1-6 and 73-80 of FOR,
and 73-80 of PLI file types is copied as is. No symbol translation is
used for these ID, sequence and comment columns.
3. If you get the message "Insufficient memory", try reducing the scope
of the processing. This may mean limiting the file specification list
(FSL) entries to only those files used by your application and/or
limiting the symbol rename lists (SRL) entries and making multiple
passes to rename all symbols.
4. Only the first 31 characters of a symbol are retained.
5. Filenames and symbols must be consistent with the symbol naming
convention for each source file type.
So the restriction means that if the following is a fragment from a .C
file, a renaming would not be performed for items c and d below, even
though these are valid DOS file names. This is because the names are
not valid C symbols.
a. avg_value = get_avg ( list ); OK
b. fp = fopen ( "C:\\TEST.dat", "r" ); OK
c. fp = fopen ( "87tax.dat", "w" ); starts with a digit
d. strcpy ( fspec, "A:$budget.trn" ); starts with $
Page 12
6. If a filename to be processed is also a language keyword you use (like
extern.bat if you use C) then all occurrences of that symbol
(extern in this case) will become uppercase in all the C files
processed. So exclude files like this from NameChanger processing or
rename them first.
7. String literals may contain tokens of no more than 99 characters each.
8. Whenever a symbol is replaced by a longer symbol and there are
sufficient trailing blanks on a statement, then the replacement will
occur on the same statement. But when no more space is available on
the current statement, a new statement will be created. You will be
notified of this by a message that "statement number nnn had to be
split". Since this process duplicates the sequence number field of the
original statement, you may need to make manual changes in these
cases.
9. In a single invocation of NameChanger, the filenames in the file
specification list (FSL) must be unique. Thus MYPGM.C and MYPGM.TXT
cannot be processed in the same run.
10. For variable length file types, trailing blanks on lines are not copied
to the output.
End of NameChanger Documentation.